package entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import util.enumeration.FnbType;
import util.enumeration.IsHalal;
import util.enumeration.PriceRange;

@Entity
public class FnBBranchEntity extends BranchEntity implements Serializable {

    private static long serialVersionUID = 1L;

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public static void setSerialVersionUID(long aSerialVersionUID) {
        serialVersionUID = aSerialVersionUID;
    }
    @OneToMany(mappedBy = "fnBBranch")
    private List<FnBTypeEntity> fnBTypeEnum = new ArrayList<FnBTypeEntity>();
    private FnbType fnBType;
    private PriceRange priceRange;
    private IsHalal isHalal;
    
    //T32
    @OneToMany(mappedBy = "fnBBranch")
    private List<CuisineTypeEntity> cuisinePref = new ArrayList<CuisineTypeEntity>();
    @OneToMany(mappedBy = "fnBBranch")
    private List<FnBProductEntity> fnBProduct = new ArrayList<FnBProductEntity>();
    @OneToMany
    private List<TableTypeEntity> tableType = new ArrayList<TableTypeEntity>();
    @OneToOne
    private FnBIOTREntity fnBIOTR;

    public FnBBranchEntity() {
    }

    public FnBBranchEntity(FnBBranchEntity temp) {
        this(temp.getBranchName(), temp.getContactNumber(), temp.getContactPerson(), temp.getEmailAddress(), temp.getFnBTypeEnum(), temp.getFnBType(), temp.getPriceRange(), temp.getIsHalal(), temp.getCuisinePref(), temp.getFandBProduct());
    }

    public FnBBranchEntity(String branchName, String contactNumber, String contactPerson, String emailAddress, List<FnBTypeEntity> fnBTypeEnum, FnbType fnBType, PriceRange priceRange, IsHalal isHalal, List<CuisineTypeEntity> cuisinePref, List<FnBProductEntity> fnBProduct) {
        super(branchName, contactNumber, contactPerson, emailAddress );

        this.fnBTypeEnum = fnBTypeEnum;
        this.fnBType = fnBType;
        this.priceRange = priceRange;
        this.isHalal = isHalal;
        this.cuisinePref = cuisinePref;
        this.fnBProduct = fnBProduct;
    }

    public List<FnBTypeEntity> getFnBTypeEnum() {
        return fnBTypeEnum;
    }

    public void setFnBTypeEnum(List<FnBTypeEntity> fnBTypeEnum) {
        this.setFnBTypeEnum(fnBTypeEnum);
    }

    public FnbType getFnBType() {
        return fnBType;
    }

    public void setFnBType(FnbType fnBType) {
        this.fnBType = fnBType;
    }

    public PriceRange getPriceRange() {
        return priceRange;
    }

    public void setPriceRange(PriceRange priceRange) {
        this.priceRange = priceRange;
    }

    public IsHalal getIsHalal() {
        return isHalal;
    }

    public void setIsHalal(IsHalal isHalal) {
        this.isHalal = isHalal;
    }

    public List getCuisinePref() {
        return cuisinePref;
    }

    public void setCuisinePref(List<CuisineTypeEntity> cuisinePref) {
        this.cuisinePref = cuisinePref;
    }

    public List<FnBProductEntity> getFandBProduct() {
        return fnBProduct;
    }

    public void setFnBProduct(List<FnBProductEntity> fnBProduct) {
        this.fnBProduct = fnBProduct;
    }

    public FnBIOTREntity getFnBIOTR() {
        return fnBIOTR;
    }

    public void setFnBIOTR(FnBIOTREntity fnBIOTR) {
        this.fnBIOTR = fnBIOTR;
    }

    public List<TableTypeEntity> getTableType() {
        return tableType;
    }

    public void setTableType(List<TableTypeEntity> tableType) {
        this.tableType = tableType;
    }
}